<?php
/**
 * 提示消息
 *
 * @param string[] $msgs 消息数组
 *
 * @author XiangJie
 */
function tisMessage($msgs){
	global $smarty;
	if (empty($smarty)) {
		return;
	}
	$smarty->assign('msgs',$msgs);
	$smarty->display('messages.tpl');
	exit;
}

/**
 * 重定向URL
 *
 * @param $url 重定向的地址
 * @param $msg 提示信息
 */
function redirectURL($url, $msg='') {
	$links[0] = "<script type=text/javascript>";
	if (trim($msg) != '') {
		$links[0] .= "alert('$msg');";
	}

	$links[0] .= "window.location.href='$url';</script>";
	tisMessage($links);
}

/**
 * 获取指定分类的子分类。
 *
 * @param $id 分类ID,默认为0.
 * @return 返回分类信息数组
 * @author XiangJie
 */
function getArticleCategory($id = 0) {
	$DB = MySql::getInstance();
	$sql = "SELECT c.*, COUNT(s.id) AS has_children, COUNT(a.article_id) AS aricle_num ".
               ' FROM ' . DB_PREFIX.'article_category' . " AS c".
               " LEFT JOIN " . DB_PREFIX.'article_category' . " AS s ON s.parent_id=c.id".
               " LEFT JOIN " . DB_PREFIX.'article' . " AS a ON a.id=c.id".
               " GROUP BY c.id ".
               " ORDER BY parent_id";
	$result = $DB->getAll($sql);
	if ($id) {
		$result = getArticleCategory_children($id, $res);
	}

	return $result;
}

/**
 * 获取指定分类的子分类。
 *
 * @param $id 分类ID,默认为0.
 * @return 返回分类信息数组
 * @author XiangJie
 */
function getArticleCategorySelectList($id = 0, $select_id = 0) {
	$result = getArticleCategory($id);
	$select = '';
	foreach ($result AS $var)
	{
		$select .= '<option value="' . $var['id'] . '" ';
		$select .= ($select_id == $var['id']) ? "selected='ture'" : '';
		$select .= '>';
		if ($var['level'] > 0)
		{
			$select .= str_repeat('&nbsp;', $var['level'] * 4);
		}
		$select .= htmlspecialchars($var['cat_name']) . '</option>';
	}

	return $select;

	return $result;
}

/**
 * 获取指定分类的子分类以及它的层次级别。
 * 注意：目前仅支持1级目录，所有级别默认为0
 *
 * @param $id 分类ID,默认为0.
 * @param $arr 插入的文章分类信息。
 * @return 返回分类信息数组
 * @author XiangJie
 */
function getArticleCategory_children($id, $arr) {
	$result = array();

	$spec_cat_id_array = array();
	if (!empty($arr)) {
		foreach($arr as $key=>$value){
			if ($id == $value['id']) {
				$spec_cat_id_array[$key] = $value;
			}
		}
	}

	return $spec_cat_id_array;
}
/**
 * 判断属性名称是否唯一
 *
 * @param string $table_name  表名
 * @param string $field_name  属性名称
 * @param string $field_value 属性值
 * @param string $where       条件判定语句
 *
 * @return bool 返回当前是否唯一
 * @author XiangJie
 */
function isUnique($table_name, $field_name, $field_value, $where='') {
	$DB = MySql::getInstance();

	$sql = 'SELECT COUNT(*) FROM ' .$table_name. " WHERE $field_name = '$field_value' ".$where.';';

	return ($DB->getOne($sql) == 0);
}

/**
 *
 * 获取指定分类下的文章列表
 *
 * @param $id 分类的ID，默认为0
 * @return 返回文章列表
 *
 * @author XiangJie
 */
function get_category_articles($id=0) {
	/* 获取文章数据 */
	$DB = MySql::getInstance();

	$where = '';
	/*当分类不为0时，即指定分类 */
	if($id) {
		$arr = array_unique(array_merge(array($id), array_keys(getArticleCategory($id))));
		$item_list_tmp = '';
		foreach ($arr AS $item)
		{
			if ($item !== '')
			{
				$item_list_tmp .= $item_list_tmp ? ",'$item'" : "'$item'";
			}
		}

		if (empty($item_list_tmp))
		{
			$where = " and a."."id"." IN ('') ";
		}
		else
		{
			$where = " and a."."id".' IN (' . $item_list_tmp . ') ';
		}
	}

	$sql = 'SELECT a.* , ac.cat_name '.

               'FROM ' .$DB->table('article'). ' AS a '.

               'LEFT JOIN ' .$DB->table('article_category'). ' AS ac ON ac.id = a.id '.

               'WHERE 1 ' .$where. ' ORDER by a.article_id';

	$ret = $DB->getAll($sql);

	return $ret;
}

/**
 *
 * 获取文章的相关信息
 *
 * @param $id 文章的编号
 * @return array 文章的相关信息
 *
 * @author XiangJie
 *
 */
function get_article($id) {
	/* 获取文章数据 */
	$DB = MySql::getInstance();

	$sql = 'SELECT a.* , ac.user_name '.

               'FROM ' .$DB->table('article'). ' AS a '.

               'LEFT JOIN ' .$DB->table('admin_user'). ' AS ac ON ac.user_id = a.user_id '.
               "where a.article_id=".$id;


	$sql .= $where;
	return $DB->getRow($sql);
}

/**
 * 获取在数据库中设置的模板信息。如果没有设置相关信息，就默认为default.
 *
 * @author XiangJie
 *
 */
function get_template() {
	$DB = MySql::getInstance();

	$sql = "SELECT * FROM ".$DB->table(`tis_shop_options`)." WHERE keyword = 'template'";
	$result = $DB->getRow($sql);

	if (trim($result['value']) == '') {
		$result['value'] = "default";
	}

	return $result['value'];
}

/**
 * 获取广告位的信息。
 *
 * @return array 返回数组
 *
 * @author XiangJie
 *
 */
function get_advertisement() {
	$DB = MySql::getInstance();

	$sql = "SELECT * FROM ".$DB->table('advertisement');
	$result = $DB->getAll($sql);

	return $result;
}
?>